As an ever increasing number of applications and services are being made available over networks such as the Internet, a number of content, application, and/or service providers are turning to technologies such as remote resource sharing and cloud computing. Cloud computing is a general term often used to describe the process of providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is made to be dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources. A service provider that owns those resources will usually take on the responsibility of maintaining and managing the resources, ensuring that they are highly available, scalable and otherwise ready to provide the necessary services.
In cloud computing environments, applications are usually hosted on remote server and storage devices by a service provider on behalf of various users. Large numbers of users typically share these resources and each user's application often has different configurations and attributes. As with most computing environments, the applications running on the service provider's resources may crash, fail or otherwise reach unexpected results. These failures may be caused by hardware malfunctions, software errors and various other conditions which may be related to the resources hosting the application or to the application itself. In this context, it is desirable to provide guidance to the customer or user that owns the application on how to prevent, fix or otherwise resolve these malfunctions.